/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.aratuk.manager;

import br.com.aratuk.modelo.Usuario;
import br.com.aratuk.servico.UsuarioServico;
import br.com.aratuk.util.Mensagem;
import java.io.IOException;
import java.io.Serializable;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.security.auth.callback.*;
import javax.security.auth.login.LoginException;

/**
 *
 * @author roniere
 */
@ManagedBean
@SessionScoped
public class ManagerAratuk implements Serializable {

    @EJB
    private UsuarioServico usuarioServico;
    private Usuario usuario;
    private static String CODIGO_USUARIO = "c";

    @PostConstruct
    public void init() throws LoginException {
        System.err.println(login("123", "123"));
        Map<String, String> parametros = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
        if (parametros.get(CODIGO_USUARIO) != null) {
            this.usuario = usuarioServico.getUsuarioPorCodigo(parametros.get(CODIGO_USUARIO));

            if (this.usuario == null) {
                Mensagem.messagemWarn("msg.usuarionaoencontrado");
            }else{
                
            }
        }

    }

    public boolean login(String login, String senha) throws LoginException {
//        boolean returnValue = true;
//        CallbackHandler callbackHandler = new CallbackHandler() {};
//        if (callbackHandler == null) {
//            throw new LoginException("No callback handler supplied.");
//        }
//
//        Callback[] callbacks = new Callback[2];
//        callbacks[0] = new NameCallback("Username");
//        callbacks[1] = new PasswordCallback("Password", false);
//
//        try {
//            callbackHandler.handle(callbacks);
//            String userName = ((NameCallback) callbacks[0]).getName();
//            char[] passwordCharArray = ((PasswordCallback) callbacks[1]).getPassword();
//            String password = new String(passwordCharArray);
//            //--> authenticate if username is the same as password (yes, this is a somewhat simplistic approach :-)
//            returnValue = userName.equals(password);
//        } catch (IOException ioe) {
//            ioe.printStackTrace();
//            throw new LoginException("IOException occured: " + ioe.getMessage());
//        } catch (UnsupportedCallbackException ucbe) {
//            ucbe.printStackTrace();
//            throw new LoginException("UnsupportedCallbackException encountered: " + ucbe.getMessage());
//        }
//
//        System.out.println("logged in");
//        return returnValue;
        return true;
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }
}
